System and method for enabling a user to control a context of a client device of a buddy in a social network

ABSTRACT

A method comprises retrieving a profile of a given user; using the profile to identify a buddy of the given user; delivering a shared control request of the given user to a buddy device of the buddy; enabling the buddy to accept or reject the shared control request; and allowing the given user to control a context of the buddy device when the buddy accepts the shared control request.

PRIORITY CLAIM AND RELATED APPLICATIONS

This application is a continuation of and incorporates by reference U.S.application Ser. No. 11/327,198, filed on Jan. 5, 2006, entitled“FRAMEWORK FOR DELIVERING A PLURALITY OF CONTENT AND PROVIDING FORINTERACTION WITH THE SAME IN A TELEVISION ENVIRONMENT”, which is acontinuation-in-part of U.S. application Ser. No. 11/261,436, filed Oct.27, 2005, entitled “FRAMEWORK FOR PROVIDING DIGITAL HOME SERVICES,”assigned attorney docket number 7344/22, and which claims priority toU.S. Provisional Application No. 60/641,787, filed on Jan. 5, 2005,entitled, “SYSTEM AND METHOD FOR EXTENDING ONLINE SERVICES TO OTHERPLATFORMS,” assigned attorney docket number 7344/7P and U.S. ProvisionalApplication No. 60/641,717, filed on Jan. 5, 2005, entitled “SYSTEM ANDMETHOD FOR ACCESSING PERSONALIZED MULTIMEDIA CONTENT”, assigned attorneydocket number 7344/8P, all of which are incorporated by reference intheir entirety.

This application incorporates the following commonly owned patentapplication in their entirety:

-   -   Application Serial Number to be assigned, entitled        “INFORMATIONAL ALERT MESSAGING FOR DIGITAL HOME SERVICES,” filed        Jan. 5, 2006 and assigned attorney docket number 7344/31;    -   Application Serial Number to be assigned, entitled “FRAMEWORK        FOR PROVIDING ANCILLARY CONTENT IN A TELEVISION ENVIRONMENT,”        filed Jan. 5, 2006 and assigned attorney docket number 7344/32;        and    -   application Ser. No. 10/752,819, entitled “SYSTEM AND METHOD FOR        ACCESSING SPECIALIZED CONTENT ASSOCIATED WITH BROADCAST        CONTENT,” filed Jan. 6, 2004 and assigned attorney docket number        7344/20.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever.

BACKGROUND OF THE INVENTION

Embodiments of the present invention relate to methods and systems forfacilitating the delivery of content items and interaction with contentitems in a television environment. More specifically, embodiments of thepresent invention relate to methods and systems that facilitate thesimultaneous delivery of a plurality of items of content, includingcontent associated with one or more users in a given social network, aswell as the interaction among one or more users in a television viewingenvironment.

Systems for distributing TV content are generally well known to those ofskill in the art. Over the past several decades, the number of systemsdesigned for the distribution and consumption of TV content hasproliferated, while the number of available channels of TV content hasskyrocketed. For example, viewers are now able to consume TV contentover cable, over the air broadcast, satellite, fiber optic, as well asother point (and multipoint) to multipoint distribution systems, eachpotentially offering several hundred channels of scheduled and on-demandTV content. Consumers have had difficulty in effectively utilizing thepool of available TV content due to a lack of useful tools for analyzingprogramming to determine the TV content that is potentially the mostenjoyable or relevant to the user. Furthermore, the viewing of TVcontent has heretofore been an essentially solitary experience outsideof viewing TV content with another individual located at the samelocation.

In order to overcome these shortcomings and other problems associatedwith existing apparatuses and techniques for viewing TV content,embodiments of the present invention provide systems and methods forboth a shared viewing experience of TV content, as well as providingmessenger and messenger related services and content within theframework of viewing TV content. Moreover, embodiments of the presentinvention provide for interaction among a plurality of users for acommunity viewing environment.

SUMMARY OF THE INVENTION

According to an embodiment, the present invention provides a methodcomprising retrieving a profile of a given user; using the profile toidentify a buddy of the given user; delivering a shared control requestof the given user to a buddy device of the buddy; enabling the buddy toaccept or reject the shared control request; and allowing the given userto control a context of the buddy device when the buddy accepts theshared control request.

The using the profile to identify the buddy may comprise identifying oneor more instant messaging applications to which the given usersubscribes as indicated in the profile; identifying one or more otherusers in the one or more instant messaging applications; and designatingone of the other users as the buddy. The method may further compriseselecting the buddy from the one or more other users by the given user.The using the profile to identify the buddy may comprise retrieving oneor more characteristics of the given user as indicated in the profile;examining one or more other user profiles to identify another user withcharacteristics similar to the given user; and designating the otheruser with the similar characteristics as the buddy. The shared controlrequest may comprise a request to allow the given user to control one ormore content items displayed on the buddy device. The method may furthercomprise propagating the context of the given user to the buddy thataccepted the shared control request. The propagating may comprisepropagating a change in context of the given user to the buddy thataccepted the shared control request. The context may comprise a notionof the action that the user is performing at a given point in time.

According to another embodiment, the present invention provides a systemcomprising a content store for storing content items; a given userdevice coupled to the content store and operative to enable selectionand presentation of content items stored in the content store to a givenuser; an other-user device coupled to the content store and operative toenable selection and presentation of content items stored in the contentstore to another user; and a content distribution server operative toidentify the other user as being a buddy of the given user, to receive ashared control request from the given user device, to deliver the sharedcontrol request to the other-user device, to receive an acceptance or arejection to the shared control request from the other-user device, andto allow the given user to control a context of the other-user devicewhen an acceptance is received.

At least a portion of the content store may be maintained on the contentdistribution server and/or external to the content distribution server.At least one of the given user device and the other-user device mayinclude one of a personal computer, a set top box, or a personal digitalassistant. The content distribution server may include a profile datastore for storing identification of buddies of a given user. The contentdistribution server may be operative to propagate a content itemselected by the given user to the given user device and the other-userdevice. The system may further comprise a second other-user devicecoupled to the content store and operative to enable selection andpresentation of content items stored in the content store to a secondother user. The content distribution server may be operative to identifythe second other user as being a second buddy of the given user, toreceive a second shared control request from the given user device, todeliver the shared control request to the second other-user device, toreceive an acceptance or a rejection to the shared control request fromthe second other-user device, and to allow the given user to control thecontext of the second other-user device when an acceptance is received.The content distribution server may be operative to propagate a contentitem selected by the given user to the other-user device and to thesecond other-user device.

According to yet another embodiment, the present invention provides asystem comprising retrieving means for retrieving a profile of a givenuser; identifying means for identifying a buddy in a social network withthe given user; delivering means for delivering a shared control requestof the given user to the buddy; enabling means for enabling the buddy toaccept or reject the shared control request; and allowing means forallowing the given user to control a client device context of the buddywhen the buddy accepts the shared control request.

The retrieving means may include a profile component coupled to aprofile store that stores profiles of users. The identifying means mayinclude a messaging component in communication with a messengerapplication on the given user device. The identifying means may includea messaging component that examines the other user profiles to identifythe subset of the other users having characteristics in common with thegiven user. The delivering means, enabling means and allowing means eachmay include at least a portion of a TV application component, the TVapplication component being in communication with the given user deviceand the other-user device, the TV application component having access toa content data store and controlling the distribution of content itemsfrom the content data store to the given user device and the other-userdevice.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is illustrated in the figures of the accompanying drawingswhich are meant to be exemplary and not limiting, in which likereferences are intended to refer to like or corresponding parts, and inwhich:

FIG. 1 is a block diagram illustrating a system for providing access tomessenger services and content in conjunction with TV content andancillary TV content according to one embodiment of the presentinvention;

FIG. 2 is a flow diagram presenting a method for initializing a givenuser's session and retrieving the context of a given user's one or morebuddies according to one embodiment of the present invention;

FIG. 3 is a flow diagram presenting a method for initializing a givenuser's session and retrieving the context of a given user's one or morebuddies based upon the user's context according to one embodiment of thepresent invention;

FIG. 4 is a flow diagram presenting a method for propagating a givenuser's context to one or more other users according to anotherembodiment of the present invention;

FIG. 5 is a flow diagram presenting a method for synchronizing thecontext of one or more users to engage in a community viewingenvironment according to one embodiment of the present invention;

FIG. 6A is a flow diagram presenting a method for tagging content fordelivery to one or more buddies of a given user according to oneembodiment of the present invention;

FIG. 6B is a flow diagram presenting a method for remotely accessing auser's profile to identify and interact with the content delivered tothe user's set top box according to one embodiment of the presentinvention;

FIG. 7 is a flow diagram presenting a method for simultaneously viewingtelevision content while participating in a gaming application accordingto one embodiment of the present invention;

FIG. 8 is a flow diagram presenting a method for entering a rating for agiven item of content and propagating the rating to one or more buddiesassociated with a given user according to one embodiment of the presentinvention;

FIG. 9 is a flow diagram presenting a method for retrieving arecommendation based upon one or more ratings according to oneembodiment of the present invention;

FIG. 10 is a flow diagram presenting a method for generating alerts toprovide a user with notification of one or more events according to oneembodiment of the present invention;

FIG. 11 is a flow diagram presenting a method for delivering anotification to a client device based upon one or more alerts accordingto one embodiment of the present invention;

FIG. 12 is a flow diagram presenting a method for deliveringpersonalized advertisements to a client device according to oneembodiment of the present invention;

FIG. 13 is a screen diagram illustrating content that may be retrievedand delivered to a given client device according to one embodiment ofthe present invention;

FIG. 14 is a screen diagram illustrating the one or more items oftelevision content available to a client device according to oneembodiment of the present invention;

FIG. 15 is a screen diagram illustrating a given user's contextdisplayed in conjunction with a given user's one or more buddies'contexts and one or more advertisements according to one embodiment ofthe present invention;

FIG. 16 is a screen diagram illustrating the traversal of one or morecontexts associated with a user's one or more buddies according to oneembodiment of the present invention.

FIG. 17 is a screen diagram illustrating the one or more optionsavailable upon selection of a given buddy's context according to oneembodiment of the present invention;

FIG. 18 is a screen diagram illustrating the selection and propagationof a given buddy's context to a user's client device according to oneembodiment of the present invention; and

FIG. 19 is a screen diagram illustrating the delivery of an alert to aclient device based upon one or more alerts identified in a user profileaccording to one embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

In the following description of embodiments of the invention, referenceis made to the accompanying drawings that form a part hereof and inwhich is shown by way of illustration a number of specific embodimentsin which the invention may be practiced. It is to be understood thatother embodiments may be utilized and structural changes may be madewithout departing from the scope of the present invention.

FIG. 1 presents a block diagram illustrating one embodiment of a systemfor providing access to messaging services and content in conjunctionwith television and TV related content. According to the embodiment ofFIG. 1, a content distribution server 102 comprises one or more softwareand hardware components to facilitate the delivery of television and TVrelated content in conjunction with messaging and messaging relatedcontent and services. Hardware and software components include, but arenot limited to, a logon component 104, a messaging component 110, a TVapplication component 112, a profile component 116, an electronicprogram guide component 118, a recommendation component 124 and otherapplications 122. The content distribution server 102 also comprises oneor more data stores for persistent storage of information used inproviding both TV and messaging content and services including, but notlimited to, a profile data store 106, content data stores 114 a and 114b, and an EPG data store 120.

The content distribution server 102 is communicatively coupled with anetwork 100, which may include a connection to one or more local and/orwide area networks, such as the Internet. Using the network 100, thecontent distribution server 102 is capable of accessing local 114 a andremote 114 b television content, as well as providing television andmessaging services, including combinations thereof, to clients 126 a,128 a, 130 a and 132 a. The content distribution server 102 is operativeto provide TV and messaging content and services to any client devicecapable of running TV client software 126 b, 128 b, 130 b and 132 b, aswell as a messaging client 126 c, 128 c, 130 c and 132 c. For exampleclient devices may include set top terminals 126 a and 128 a that use atelevision as a display device, computer hardware such as a personalcomputer 130 a and mobile devices 132 a, such as cellular handsets andpersonal digital assistants (“PDA”). Other types of electroniccommunications equipment is contemplated as falling with in the scope ofthe invention including, but not limited to, digital media adapters, DVDplayers, connected TVs and other networked consumer electronic devices.

When a given client 126 a, 128 a, 130 a and 132 a initially accesses thecontent and services that the content distribution server 102 provides,the server authenticates the given user and/or client device. Thecontent distribution server 102 provides a logon component that allowsfor the authentication of clients 126 a, 128 a, 130 a and 132 a and/orusers of a given client device. A client device 126 a, 128 a, 130 a and132 a initializes its TV client application 126 b, 128 b, 130 b and 132b and messenger client application 126 c, 128 c, 130 c and 132 c, whichinitiates the generation and transmission over the network 100 of alogon request to the logon component 104. According to one embodiment ofthe invention, the logon request comprises information identifying theuser of the client device in addition to information regarding theclient device itself, e.g., a MAC address, IP address, phone number orother uniquely identifying descriptor. By providing informationregarding the user, the content distribution server 102 may provide apersonalized experience to the user regardless of the specific clientdevice 126 a, 128 a, 130 a and 132 a with which the user connects to thecontent distribution center 102.

The logon component 104 receives the logon request from a given client126 a, 128 a, 130 a and 132 a and attempts to authenticate the userand/or device. The logon component 104 may access a profile 108 for thegiven user that a profile data store 106 maintains. Accordingly, thelogon component 104 uses information identifying the user in an attemptto authenticate the identity of the user, e.g., against informationcontained in the user's profile 108. The identifying information maycomprise a username and password whereby the logon component 104conducts a comparison to ensure that the received password is identicalto a stored password. Alternatively, or in conjunction, the logoncomponent 104 may conduct an exchange of public keys with the client 126a, 128 a, 130 a and 132 a whereby each device (client and logoncomponent) encodes outgoing data with the received public key anddecodes received data with its private key. The logon component 104 mayalso receive information regarding the client device 126 a, 128 a, 130 aand 132 a, e.g., a MAC address or other uniquely identifying indicia, toauthenticate the client device or otherwise validate that the client 126a, 128 a, 130 a and 132 a may connect to the content distribution server102.

The content distribution server 102 may also implement a logon proxy104a to provide scalability and the flexibility to handle large numbersof clients 126 a, 128 a, 130 a and 132 a attempting to connect to thelogon component 104. Multiple client devices 126 a, 128 a, 130 a and 132a initiate communication over the network 100 with a given one of one ormore logon proxies 104 a. Each logon proxy 104 a initiates communicationwith the logon component 104, thereby allowing the logon component 104to service a large number of client requests without the necessity ofmaintaining and managing a connection with each requesting client 126 a,128 a, 130 a and 132 a.

Where the logon component 104 is unable to successfully authenticate theuser or client 126 a, 128 a, 130 a and 132 a, the logon component 104prevents the client 126 a, 128 a, 130 a and 132 a from accessingfunctionality that the content distribution server 102 offers.Alternatively, the logon component 104 may solely provide access to theTV application component 112, electronic program guide component 118 andEPG data store 120, thereby allowing the user to view TV content andscheduling data on the client 126 a, 128 a, 130 a and 132 a. A user whomthe logon component is unable to authenticate is therefore presentedwith a traditional digital TV content viewing experience with contentfrom one or more content sources 114 a and 114 b, as well as programguide data for his or her locality.

Where the logon component 104 successfully authenticates the user and/orclient device, the logon component may record an indication of thesuccessful authentication in the user's profile 108 in the profile datastore 106. The logon component 104 provides an indication to themessaging server 110 and the TV application component 112 that the userand/or client 126 a, 128 a, 130 a and 132 a has been successfullyauthenticated and may be provided with access to the contentdistribution server and its constituent components identified above.Upon successful authentication, the messaging server 110 passes theidentity of the user to the profile component 116, which retrieves theuser's profile 108 from the profile data 106 store for transmission tothe messaging component 110. The messaging component 110 may alsoprovide the TV application 112 with a copy of the user's profile 108, orthe TV application component 112 may obtain a copy of the user's profile108 directly from the profile component 116.

The content distribution server 102 maintains a user profile 108 foreach user in a profile data store 106, which is managed by a profilecomponent 116. Alternatively, or in conjunction with the foregoing, auser profile may be stored on a remote server (not pictured), coupled tothe content distribution server 102. A user profile maintained on aremote server may be utilized by a plurality of servers coupled to theremote server, including the content distribution server 102, toidentify a given user and the user's activities. As indicated above, auser profile 108 maintains authentication information for the user, suchas a username and password. The user profile may also be used by themessaging component 110 and TV application component 112 for therecordation of user interaction with the components, 110 and 112,respectively. Accordingly, the user profile may maintain an historicalrecord of the interactions of the user with the content distributionserver 102.

Those of skill in the art should understand, however, that a subset ofthis historical interaction may be written to the user profile 108. Forexample, when the user is using the TV application component 112 to viewTV content, the TV application component 112 sends a message to theprofile component 116 to write indicia to the user's profile 108 inresponse to the receipt of a command, e.g., a change channel command.Similarly, when the messaging component 110 provides messaging contentand related services to the user, the messaging component 110 sends amessage to the profile component 116 instructing it to write indicia tothe user's profile 108 in response to the receipt of a command, e.g.,sending a message to another user or stepping into an on-line game.

The profile 108 also maintains a user's “context”. According to oneembodiment, a user's context may be a notion of an action that a givenuser is performing at a given point in time, which may also include thelocation from which the user is performing that action. Put another way,a user's context may be what the user is doing at a given point in time,e.g., watching a given TV channel, playing an on-line game, listening tomusic, conducting an on-line transaction, etc. The context may alsoindicate from where or what type of device the client is connecting tothe content distribution server 102, e.g., a set top box 126 a and 128a, a personal computer 130 a, a mobile device 132 a, etc. By providingthe user's context to the messaging component 110 and the TV applicationcomponent 112, each component, 110 and 112, is capable of identifyingand retrieving the proper content to provide the user with messagingcontent and related services unified with TV content and relatedservices as is explained in greater detail herein. The profile component116 receives updates to the given user's context form the messagingcomponent 110 and TV application component 112 that the profilecomponent 116 writes to the user profile 108 for the given user. Theprofile 108 for a given user therefore maintains an historical record ofthe user's context over a period of time.

The profile may also maintain information regarding other users of thesystem to whom a given user is related. For example, the given user mayuse a messaging client 126 c, 128 c, 130 c and 132 c on a client device126 a, 128 a, 130 a and 130 a to identify one or more buddies, theidentities of which are written to the given user's profile 108. Bytraversing groups of related users, the profile component 116 isoperative to identify social networks of users. Communities of users mayalso exist whereby an indication of the membership in a community iswritten to the given user's profile 108. Similarly, the profilecomponent 116 may identify subsets of a given user's buddies from thegiven user's total set of buddies. According to one embodiment, theprofile component 116 calculates a social network for a given user thatcomprises all users with an N-degree relationship to the given user. Forexample, User A maintains a direct relationship with User B, and User Bmaintains a direct relationship to user C. User A and User C are relatedby two degrees, whereas each is related to User B by one degree.

The TV application component 112 identifies the user's context andretrieves the proper TV content for transmission over the network 100 tothe client device 126 a, 128 a, 130 a and 132 a with which the user isinteracting. Furthermore, the TV application component 112 may retrieveancillary TV content including, but not limited to, audio, video, text,images and combinations thereof. According to one embodiment of theinvention, the TV application component 112 retrieves TV content andancillary TV content from a local content data store 114 a, which mayaggregate TV content and ancillary TV content from a variety ofdisparate sources. Alternatively, or in conjunction, the TV applicationcomponent 112 receives TV content and ancillary TV content from a localcontent data store 114 a, as well as over the network 100 from a remotecontent data store 114 b, where required content resides remotely fromthe server 102. Similarly, the TV application component 112 may collectTV content from a plurality of TV content distribution systems (notpictured) for storage in the local and remote content data stores, 114 aand 114 b, respectively. The TV application component 112 mayselectively transmit TV content to users on the basis of a schedule forthe transmission of TV content promulgated by the TV contentdistribution system for the region in which a given user is located.

The messaging component 110 is also provided with the user's context,thereby allowing the messaging component 110 to know what actions theuser is performing, e.g., watching TV content, viewing ancillary TVcontent, playing an on-line game, listening to music, etc. Because themessaging component 110 is aware of the user's identity, the messagingcomponent 110 may identify other users in the given user's socialnetwork, also referred to as the user's “buddies”. With knowledge of thegiven user's identity and other users in the given user's socialnetwork, the messaging component 110 may instruct the TV application 112to propagate the given user's context to other users in the given user'ssocial network. Propagating the user's context may include generating animage representing the user's context, which may further include otherdata describing the user's context (e.g., text, audio, video,combinations thereof, etc.). Alternatively, information regarding theuser's context may be used to lookup and retrieve additional relatedinformation from a content data store 114 a and 114 b. The TVapplication server 112 presents other users in the given user's socialnetwork with the given user's context, such as through the presentationof an icon. The TV application server 112 may provide a given user withthe context of other users in the given user's social network, and viceversa.

The following example may be illustrative and is not intended to belimiting. Assume that the user is watching the TV program “TheApprentice” on channel three. According to one embodiment, the messagingcomponent 110 identifies the user's buddies and instructs the TVapplication component 112 to propagate the user's context to his or herbuddies. The TV application component 112 generates a thumbnail imagerepresenting the program “The Apprentice”, which the TV applicationcomponent 112 propagates to the given user's buddies. The thumbnail ispresented on a client device for a given buddy with informationdescribing the program, e.g., the title and the fact that the user iswatching the program on channel three. The TV application server 112 maymodify information regarding the given user's content, e.g., scalingdown the thumbnail image, on the basis of a given destination clientdevice 126 a, 128 a, 130 a and 132 a.

The messenger component 110 and TV application component 112 allow for anumber of advanced features not available in content distributionsystems known to those of skill in the art. Because the messagingcomponent is aware of a given user's context and may receive input froma given client device 126 a, 128 a, 130 a and 132 a, users of thecontent distribution server 102 may interact with one another. Themessaging component 110 provides a given user's context to the TVapplication component 112, which propagates the context to other usersin the given user's social network and vice versa. The given user mayselect an indication of the context of other users in the given user'ssocial network to initiate an action. Initiating an action may includestarting an instant message conversation with the selected user,switching context to the context of the selected user, etc. Selectionsare passed to the messaging component 110, which performs the requestedaction and provides content for the TV application component to consumeand propagate as is appropriate to other users. One illustrative use ofthis functionality is shared viewing of content between a plurality ofusers, shared remote control functionality between a plurality of users,combinations thereof, shared remote and shared viewing with instantmessaging between a plurality of users, etc.

The messaging component 110 also provides access to other applicationcomponents 122. Alternatively, other application components 122 maycommunicate directly with the TV application component 112 to providecontent for distribution to one or more client devices 126 a, 128 a, 130a and 132 a in communication with the content distribution server 102over the network 100. One exemplary other application component 122 isan on-line poker playing application. The other application 122 handlesthe main program logic for on-line poker playing game. Each user'scontext (which may comprise location information (e.g., playing on-linepoker), the identities of other players in the game, what the givenuser's action is (hit, hold, double down), etc.) is provided to themessaging component 110, which passes information regarding a givenuser's context to the TV application component for propagation to otherplayers in the game.

Propagation of information regarding a given user's context may also bepropagated to other users in a given user's social network who are notnecessarily playing the on-line poker game. Those of skill in the artshould recognize that other application components falling within thescope of the present invention are not limited to on-line poker playingcomponents, and may include other applications that the messagingcomponent 110 can interface with, including, but not limited to, musicengines whereby the messaging component 110 may instruct the TVapplication component 112 as to the current song to which a user islistening, search applications whereby the messaging component 110 mayinstruct the TV application component 112 as to the keywords over whicha user is searching and the related result set, etc. These are examplesof a given user's context that the TV application component 112, inconjunction with the messaging component 110, may propagate to users ofthe content distribution server 102 to provide for a shared contentconsumption experience.

As indicated above, the TV application component 112 may propagate agiven user's context to other users in the given user's social network,which may include channel information regarding a TV program that thegiven user is viewing. An issue arises, however, when individual usersare accessing TV content in different time zones and locations withdifferent channel assignments. The content distribution server 102includes an electronic program guide component 118 communicativelycoupled to the network 100 and operative to receive electronic programguide information, e.g., the program schedule for a given location andtime zone. The electronic program guide component 118 queries programguide servers (not pictured) that are in communication over the network100, such as the program guide servers operated by Tribune MediaServices. The electronic program guide component 118 stores the one ormore electronic program guides in an EPG data store 120. According toone embodiment of the invention, the EPG data store 120 is a relationaldatabase, but may be substituted by a tab delimited data store, a commadelimited data store, an object oriented database, a hybridobject-relational database, or other data stores known to those of skillin the art. Systems and methods for generating electronic program guidesinclude U.S. Pat. No. 6,813,774, entitled “PROGRAM GUIDE DISPLAYAPPARATUS AND PROGRAM GUIDE DISPLAY METHOD”, U.S. Pat. No. 6,763,522,entitled “SYSTEM AND METHOD FOR A DIGITAL TELEVISION ELECTRONIC PROGRAMGUIDE” and U.S. Pat. No. 6,611,958, entitled “ELECTRONIC PROGRAM GUIDEFEATURE FOR AV SYSTEM”, the disclosures of which are hereby incorporatedby reference in their entirety. Furthermore, those of skill in the artrecognize a number of electronic program guides are commerciallyavailable, including those available from Pioneer, Scientific Atlanta,Motorola, Gemstar/TVGuide (“GTVG”), Charter Communications, etc.

When the TV application component 112 propagates a given user's contextto other users in the given user's social network, the TV applicationcomponent 112 may query the electronic program guide component 118 todetermine a local context for a user in the social network thatcorresponds to the user's context. For example, where the user isviewing a program on the ABC network, that same program is notnecessarily being transmitted on the same channel in all locations andtime zones, if the program is being transmitted at all. Accordingly, foreach user in a given user's social network to which the TV applicationcomponent 112 is to transmit a given user's context, the electronicprogram guide component 118 retrieves the electronic program guide fromthe EPG data store 120 for a user in the social network.

The electronic program guide component 118 executes a search in anattempt to locate the program that the given user is viewing in theelectronic program guide. If successful, the electronic program guidecomponent 118 instructs the TV application component 112 as to thechannel on which the user in the social network may find the programthat the given user is viewing being transmitted; the TV applicationcomponent 112 may propagate this information as part of the given user'scontext. Where the electronic program guide component 118 cannot locatethe given user's context in the electronic program guide, e.g., theprogram that the given user is viewing is not presently beingtransmitted in the time zone in which the user in the social network islocated, the electronic program guide component 118 may identifyalternate times at which the program is being transmitted, which the TVapplication component 112 may also propagate as part of the given user'scontext. The TV application component 112 transmits this information tothe user in the social network. Where the client device 126 a, 128 a,130 a and 132 a comprises digital video recording functionality (“DVR”),the TV application component 118 may provide the user in the socialnetwork with an opportunity to schedule recording of the program.Recording may also comprise the recording of content that is notselectable by a given user through interaction with an EPG, e.g.,Internet based content. It should be noted that selection of a programor other content for recording may be recorded in the user's profile asa context or context change.

According to one embodiment of the invention, the content distributionserver 102 uses a unique identifier to identify each program that it istransmitting to clients 126 a, 128 a, 130 a and 132 a, e.g., stored inthe EPG data store 120. According to another embodiment of theinvention, the content distribution server 102 utilizes unique programidentifiers (“PID”) provided by an EPG data stream to identify eachprogram that it is transmitting to clients 126 a, 128 a, 130 a and 132a. The electronic program guide component 118 searches the EPG datastore 120 to locate the program that the given user is viewing anddetermines the program's unique identifier, which the TV applicationcomponent 112 may propagate as part of the given user's context. Aclient device 126 a, 128 a, 130 a and 132 a that a user in the givenuser's social network is operating receives the given user's context andattempts to identify the program that the given user is viewing in alocal electronic program guide, which may be stored on the client 126 a,128 a, 130 a and 132 a or retrieved from a network source.

If successful, client side software, e.g., a TV client 126 b, 128 b, 130b and 132 b, instructs the user in the social network as to the channelon which he or she may find that program that the given user is viewing,which may include allowing the user in the social network to tune tochannel on which the TV application component 118 is transmitting theprogram. Where the identifier for the program cannot be located in thelocal electronic program guide, client side software may identifyalternate times at which the program is being transmitted. Where theclient device 126 a, 128 a, 130 a and 132 a comprises digital videorecording functionality (“DVR”), the client 126 a, 128 a, 130 a and 132a may provide the user in the social network with an opportunity toschedule recording of the program. Recording functionality of the DVRmay also include the recording of content that does not appear in anEPG, e.g., Internet based content.

As discussed above, interaction with the messaging component 110 and TVapplication component 112 may be recorded by the profile component 116,which maintains a profile 108 for each user in a profile data store 106.In other words, the profile 108 contains a history of the user's contextchanges as a function of time, allowing decisions to be made regardingthe given user's preferences on this basis. For example, where theuser's context is identified as viewing science fiction programs forlong periods of time and news programs for short periods of time, adecision may be made that the user prefers science fiction programs.This may also account for sub-genres, e.g., science fiction/action,science fiction/horror, etc. Each profile 108 may also comprise contextinformation as a function of time for other users in a given user'ssocial network, as well as other users that utilize the contentdistribution server 102.

A recommendation component 124 may utilize user profiles in the profiledata store to supply recommended programming to the user, which may alsoinclude providing recommendations for using other applications, such asin response to on-line events, users with whom a given user might wantto be a buddy, ancillary TV content, etc. According to embodiments ofthe invention, the recommendation component 124 may utilize a userprofile in determining recommended content to a user. Alternatively, orin conjunction with the foregoing, the recommendation component 124 mayalso utilize the user profiles of a given user's buddies, e.g., theprofiles of those users that are in the given user's social network. Therecommendation component 124 may also compute a vector for the givenuser's profile and include those users with similar profile vectors inits calculation of recommended content. Also, the recommendationcomponent 124 may utilize profiles for user communities, which containaggregate context information for a community of users, when determiningrecommended content. Similarly, the recommendation component 124 mayutilize a personalization service, such as My Yahoo!, which allows usersto create and edit their own profiles for indicating media preferences(e.g., favorite channels or TV programs), which are stored on Yahoo!servers (which may be profile data stores 106) and made available to therecommendation component 124.

The recommendation component 124 allows the content distribution server102 to harness the viewing experience, habits and preferences of theusers who are interacting with the content distribution server 102. Asindicated above, the recommendation component 124 may providerecommendations beyond TV content, extending to all services that thecontent distribution server offers. For example, a user may interactwith the messaging component 110 to access other application components122 through the TV application component 112. One exemplary otherapplication component 122 is an on-line poker game in which users playagainst each other on line. Where the user profile indicates that theuser spends substantial time in the context of an on-line pokerapplication 122, the recommendation component may alert the user when anupcoming on-line poker tournament is approaching.

The system of the present invention illustrated at FIG. 1 provides for ashared content consumption experience for users of the contentdistribution server 102. A given user may be informed of the context ofother users of the system, including users in the given user's socialnetwork. According to one embodiment, icons and accompanying textualdata are propagated by the TV application component and presented to thegiven user on a client device 126 a, 128 a, 130 a and 132 a, indicatingthe context of other users of the server 102. The presentation of thecontext of other users in conjunction with the presentation of TVcontent allows for a shared viewing experience whereby a given user mayknow the context of other users and may change his or her context tothat of another user. For example, where the context of a user in agiven user's social network indicates the user in the social network iswatching a program that is enjoyable to the given user, the given usermay change his or her context to match that of the user in the socialnetwork (e.g., tuning to receive transmission of the same TV contentthat the user in the social network is consuming). Using thearchitecture described herein, a number of applications become availablein the context of the TV consumption process, including, but not limitedto personalization, community viewing, shared presence and context,messaging, access to ratings and recommendations (including communityreviews), alerts, etc.

The content service provider 102 provides access to it functions andapplication components through the use of one or more applicationprogram interfaces (“API”) 100. An API 100 is an interface, or set ofcalling conventions, by which a given application component accessesother application components and the services that the applicationcomponents offer. By using the API 100, a given application componentadvertises information regarding the functions and/or services that thegiven application component may provide to other components, which mayalso include the technique by which the functions or services areaccessed. This allows the application components comprising.the systemto access supporting system and network services. For example, the API100 allows client side applications to issue function calls for theperformance of actions and accessing of services, such as tuning achannel, accessing an on-line game, listening to music, allowing themessenger component to interface with the TV application component or amessaging client to access EPG data, etc., as described herein. AlthoughFIG. 1 illustrates the API 100 as a separate system component, those ofskill in the art recognize that each application component may providean individual API 100 identifying the specific functions and services agiven application component provides. Furthermore, applicationcomponents, e.g., a messaging client 126 c, 128 c, 130 c, 132 c,resident on client devices 126 a, 128 a, 130 a, 132 a may provide one ormore APIs 100 advertising the functions and service the givenapplication component provides.

One embodiment of a method for selecting content based upon the one ormore users in a given user's social network (“buddies”) is illustratedin FIG. 2. According to the embodiment illustrated in FIG. 2, a user ofa client device may initialize and connect to a content distributionsystem, step 205, which may include a logon component. Initializationmay comprise a client device powering up and initializing acommunications stack, such as a TPC/IP stack, and opening a connectionto the logon component over a network, e.g., the Internet. The logoncomponent attempts to verify a user's credentials using informationmaintained in the user's profile that may be retrieved by a profilecomponent, step 210.

Television content is retrieved and displayed to a user on the user'sclient device, which may include the use of a TV application component,step 215. According to one embodiment of the invention, a TV applicationcomponent retrieves content from a content data store based upon auser's selection of content from among a plurality of television showsor listings for television shows displayed to the user. For example, anelectronic programming guide component may retrieve electronic programguide data from an EPG data store identifying one or more items oftelevision content available to a user. An electronic programming guidemay be displayed to the user for selection of one or more items oftelevision content from the electronic programming guide. According toanother embodiment of the invention, the television content retrievedand displayed to a given user is based upon the user's profilemaintained in a profile data store. For example, a user's profile maymaintain information identifying the age, location, sex, etc., of thegiven user. Exemplary methods for retrieving content based upon a userprofile are described in commonly owned U.S. patent application Ser. No.10/752,819 entitled “SYSTEM AND METHOD FOR ACCESSING SPECIALIZED CONTENTASSOCIATED WITH BROADCAST CONTENT,” the disclosure of which is herebyincorporated by reference in its entirety. A TV application componentmay retrieve and display content to a user based upon the one or moreitems of information maintained in the user's profile, according tomethods further described herein. The content retrieved by a TVapplication component may comprise audio, video, text, images andcombinations thereof.

A user's profile is further utilized to determine whether a given userhas one or more buddies or whether the user is part of one or moresocial networks, step 220. For example, a user may subscribe to one. ormore instant messaging services, such as Yahoo! Messenger. An instantmessaging service may allow a user to designate and save buddies withwhom the user may communicate by delivering instant messages via therespective instant messaging application. According to one embodiment ofthe invention, a user may designate, in a user profile, the one or moreinstant messaging services to which the user has subscribed. Similarly,a user may designate one or more buddies with profiles maintained on thesystem described herein. A messaging component may retrieve the identityof a user's one or more buddies that maintain profiles on the systemdescribed herein and may also retrieve the identity of the one or morebuddies identified in each respective instant messaging applicationidentified in the user's profile.

A check is performed to determine whether a given user has one or morebuddies designated in one or more instant messaging applications orwhether the user has one or more buddies that maintain profiles on thesystem described herein, step 220. If a user does have one or morebuddies, a messaging component may retrieve the identity of the one ormore buddies designated by the user in the one or more instant messagingapplications or designated as buddies with profiles on the contentdistribution system, step 228. The messaging component may furtherdetermine whether any of a given user's one or more buddies arecurrently active, step 229. For example, a given buddy may be deemedactive if the buddy has a profile and is currently logged in oraccessing the content distribution system. Alternatively, or inconjunction with the foregoing, an inter-messaging component may beoperative to communicate with one or more third party applications andthe messaging component to identify whether a given buddy is logged intothe third party application, which may include an instant messagingapplication.

If none of a user's one or more buddies are active, or if a user'sprofile does not identify one or more buddies, a profile component maybe used to traverse the plurality of profiles maintained in a profiledata store to select profiles of active users that match or are similarto the given user's profile, step 225. The one or more active users'profiles that match or are similar to the user's profile may bedesignated as the user's temporary buddies, step 225. For example, agiven user's profile may specify that the user is thirty years old,lives in New York City, is a football fan and enjoys watching realitytelevision shows. A profile component may traverse a plurality of userprofiles stored in a profile data store and retrieve one or moreprofiles for active users that identify interests or preferences similarto those of the given user, e.g., a match on one or more profile fields.The one or more active users selected (“users like you”) may betemporarily designated as the user's buddies.

After a user's buddies have been temporarily designated based upon theuser's preferences and characteristics, step 225, or designatedaccording to information maintained in the user's profile, step 228, thecontext of the user's one or more active buddies may be retrieved, step230, which may include retrieval by a messaging component. According toone embodiment of the invention, a context may be a notion of an actionthat a given user is performing at a given point in time, which may alsoinclude the location from which the user is performing that action. Forexample, a context may be what the user is doing at a given point intime, e.g., watching a given TV channel, playing an on-line game,listening to music, conducting an on-line transaction, etc.Additionally, the avatar associated with each respective buddy isretrieved, wherein an avatar may comprise an identifier for a givenbuddy, step 235. For example, an avatar may comprise an image selectedby a given buddy that identifies the given buddy.

The retrieved context of a user's one or more buddies may be displayed,along with each buddies' respective avatar, on a client device for agiven user in conjunction with TV content being viewed by the givenuser, step 240. According to one embodiment of the invention, thecontext of a given user's one or more buddies is displayed as an imagerepresenting the context of a given buddy. For example, if a given buddyis viewing the television show “The Apprentice,” an image associatedwith the television show may be displayed on the given user's clientdevice. Similarly, if a given buddy is playing in an online poker room,an image of a poker room associated with the given buddy's context maybe displayed on the given user's client device.

According to another embodiment of the invention, the context of a givenuser's one or more buddies is displayed on the user's client device. Forexample, if a given user is viewing a television show and a buddyassociated with the user is playing in an online poker game, the buddy'scontext may be displayed in conjunction with the TV content being viewedby the given user, whereby the user may view the buddy's poker game asit occurs. Similarly, if a buddy associated with the user is listeningto music from a particular artist, an image associated with the musicalartist as well as the musical audio content may be delivered to theuser's client device allowing the user to listen to the music associatedwith the given buddy. According to one embodiment of the invention, amessaging component identifies the contexts of the buddies of a givenuser and requests one or more items of content from a TV applicationcomponent or another application component based upon the one or morebuddies' identified contexts. The TV application component or anotherapplication component may retrieve content associated with the one ormore buddies' contexts from a content data store, which may includetelevision content, context representations, musical content, etc. Thecontent retrieved is delivered to the user's client device, allowing theuser to view the contexts of the user's one or more buddies.

A user may select a representation of the context associated with eachrespective buddy that is retrieved and displayed on the user's clientdevice. According to one embodiment of the invention, a messagingcomponent may identify the context of a user's one or more buddies, andinstruct a TV application component to deliver an image, icon, audiocontent, streaming data, etc., representing a buddy's context to theuser's client device. Using a remote control device, a user may navigateto the visual or audio representation of a given buddy's context.According to one embodiment of the present invention, a user may selectthe representation of a given buddy's context to change the given user'scontext to the selected buddy's context. For example, if a given user isviewing the television show “The Apprentice” and a given buddy isviewing the television show “The Practice,” the user may select therepresentation of the buddy's context (viewing “The Apprentice”), whichthereby causes the user's context to be changed to the buddy's context(viewing “The Practice”).

A check is performed to determine whether the user selected arepresentation of a given buddy's context, step 245. If a user selects arepresentation of a given buddy's context the buddy's context ispropagated to the user's client device, step 250. According to oneembodiment of the invention, a messaging component retrieves the contextof the buddy selected and instructs a TV application component toretrieve and deliver the context of the buddy to the user's clientdevice. If a user does not select the representation of a given buddy'scontext, the user's context remains unchanged, step 255. The user maythereafter continue to review the content available to the user whilealso viewing the representations associated with the user's one or morebuddies' contexts.

FIG. 3 illustrates one embodiment of a method for retrieving anddisplaying the context of a given user's one or more buddies based uponthe context of the given user. According to the method illustrated inFIG. 3, a user of a client device initializes and connects to a logoncomponent, step 305, to verify the user's credentials as maintained inthe user's profile, which may be retrieved by a profile component from aprofile data store, step 310. A user may select from among a pluralityof content available to the given user. For example, an electronicprogram guide component may search an EPG data store, operative to storeone or more program guides, and display the one or more items of contentavailable to a given user. A given item of content selected by a usermay be retrieved from a TV application component and displayed on agiven user's client device, step 315. The content retrieved by a TVapplication component may be retrieved from a content data store and maycomprise a TV show, movie, broadcast data, video on demand (“VOD”), etc.

The context selected by a given user may be retrieved and delivered to amessaging component in order to identify one or more buddies associatedwith the given user's context. For example, a given user may select atelevision show displaying a football game between the New York Giantsand the Cleveland Browns from an electronic program guide, which may bedisplayed on the user's client device. Additionally, the user's profilemay be retrieved and used to determine whether the given user has one ormore buddies associated with the context selected. Similarly, a givenuser may select a VOD horror movie, which may be displayed on the user'sclient device. The user's profile may be retrieved and used to determinewhether the given user has one or more buddies associated with thecontext selected by the user, which may comprise a movie genre.According to one embodiment of the invention, a buddy may be anindividual associated with a given user in one or more instant messagingapplications to which the given user has subscribed, which may includean indication in a user profile. According to another embodiment of theinvention, a buddy comprises an individual with a profile maintained onthe content distribution system indicating interests or characteristicsthat match or are otherwise similar to those of a given user.

A check is performed to determine whether a user has one or morebuddies, which may be identified in the user's profile, step 320. If thecheck performed at step 320 evaluates to true, an additional check isperformed to determine whether a given user has one or more buddies orbuddy lists associated with the context selected by the given user(e.g., context specific buddy), step 325. According to one embodiment ofthe invention, a context specific buddy may be a buddy associated with auser's particular context. For example, a given user may be an avidfootball fan and designate one or more buddies, who are also interestedin football, as football buddies. According to another embodiment of theinvention, a user may identify multiple buddy lists, wherein each buddylist may comprise one or more buddies associated with a given context.The one or more buddy lists may be maintained on the contentdistribution system or on a remote server coupled to the contentdistribution system. If a user does not have one or more contextspecific buddies or context specific buddy lists, step 325, the contextsof a user's default buddies may be displayed, wherein default buddiesmay comprise the one or more buddies not associated with any specificcontext, step 330.

If a user does not have one or more buddies, step 320, a profilecomponent may traverse one or more profiles maintained in a profile datastore to select one or more profiles of active users that are similar ormatch the profile for the given user, step 340. According to oneembodiment of the invention, the profile component traverses a pluralityof user profiles stored in a profile data store to identify one or moreprofiles that that identify interests or preferences similar to those ofthe given user, e.g., a match on one or more profile fields. The one ormore profiles of active users retrieved from a profile data store thatare similar or match a given user's profile may be temporarilydesignated as given user's buddies. Alternatively, or in conjunctionwith the foregoing,, the profiles retrieved may be further selectedbased upon the given user's context, thus constituting context specificbuddies.

A check is performed to determine whether a given user's one or morecontext specific buddies are active, step 335. If a given user's contextspecific buddies are not active, the user's one or more default buddiesmay be displayed, wherein a user's default buddies may comprise theuser's one or more buddies not associated with any specific context,step 330. According to one embodiment of the invention, a given buddy isactive if the buddy has logged into the content distribution system. Ifone or more a given user's context specific buddies are active, or aftera user's one or more context specific buddies have been temporarilydesignated based upon the user's profile or context, the contexts of theone or more context specific buddies are retrieved, step 345, anddisplayed on the user's client device, step 350. According to oneembodiment of the invention, an audio or visual representation of thecontexts of a user's one or more buddies are displayed on the givenuser's client device. A user may interact with the one or more buddiesdisplayed, such as through the use of an instant messaging or chatsession.

FIG. 4 illustrates one embodiment of a method for providing a user withcontrol of the context of the user's one or more buddies. A user of aclient device initializes and connects to a logon component, step 410,to verify the user's credentials as maintained in a user profile, whichmay be retrieved from a profile data store, step 415. A TV applicationcomponent may provide content to the user for viewing on a clientdevice, step 420. According to one embodiment of the invention, contentis selected by a given user from a plurality of content displayed to auser, such as through an electronic program guide. According to anotherembodiment.of the invention, content is retrieved based upon one or morecharacteristics in a user's profile, according to methods describedherein.

A user's one or more active buddies are identified, step 425. Accordingto one embodiment of the invention, a user's one or more buddiescomprise individuals designated as buddies in one or more instantmessaging applications as indicated in the given user's profile.According to another embodiment of the invention, a user's one or morebuddies comprise one or more users with profiles maintained on thecontent distribution system. The one or more active buddies identifiedmay be displayed on the user's client device with an audio or visualrepresentation of each buddy's respective context, step 428. Forexample, an inter-messaging component operative to communicate with athird party instant messaging application may identify whether a givenbuddy is logged into the third party application. An audio or visualrepresentation indicating the third party application that a given buddyis logged into may be displayed on the user's client device. Similarly,a messaging component may identify the one or more buddies logged intothe content distribution system and retrieve the context of the one ormore buddies for display on the user's client device.

A user may select one or more of the active buddies and deliver a sharedremote control request to the one or more selected active buddies. Acheck is performed to determine whether the user selected one or more ofthe active buddies associated with the given user, step 430. If one ormore active buddies are not selected, a shared remote control request isnot generated or delivered to the one or more active buddies, and a usermay continue to view the content displayed on the user's client device,step 420. If one or more active buddies are selected, step 430, a sharedremote control request is delivered to the one or more active buddiesselected, step 435. According to one embodiment of the invention, ashared remote control request comprises a request to allow a given userto control the one or more content items displayed on a given buddy'sclient device. For example, a client device may be operative to displaya plurality of items, such as one or more television shows, an onlinepoker game, instant messaging applications, etc. A shared remote controlrequest that is accepted by a given buddy may allow the given user tocontrol content that is displayed on the given buddy's client device.

A check is performed to determine whether one or more buddies associatedwith the user accepted the shared remote control request, step 445. Ifnone of the selected buddies accepted the user's shared remote controlrequest, the user does not gain control over the content displayed onthe one or more selected active buddies' client devices. If one or moreselected buddies accept the shared remote control request, step 445, thecontext of the user from which the shared remote control requestoriginated is displayed on the one or more selected active buddies'client devices, step 440. For example, a user may be viewing thetelevision show “Law and Order” and active buddies B1 and B2 associatedwith the user may be viewing the television shows “The Bachelor” and“The Practice,” respectively. The user may select active buddies B1 andB2 and deliver a shared remote control request to both buddies. B1 andB2 may either reject or accept the shared remote control request. Ifboth B1 and B2 accept the shared remote control request, B1's clientdevice and B2's client device are updated to reflect the context of thegiven user. Similarly, if B1 accepts the shared remote control requestand B2 rejects the shared remote control notification, B1's clientdevice is updated to reflect the user's context, whereas B2's clientdevice is not be updated. A check is periodically performed to determinewhether the user's context has changed, such as where the user changesthe television channel tuned to on his or her client device, step 450.If a user's context is not changed, no updates are made to the one ormore active buddies that accepted the shared remote control requestdelivered by the user, step 440. Where a given user's context changes,the change is propagated to the one or more active buddies that acceptedthe shared remote control request delivered by the user, step 455, andthe new context is displayed, step 440.

According to one embodiment of the invention, Infrared (“IR”) signalsare transmitted via a user's remote control to the user's set top box. Aclient application program interface may capture the IR signals anddeliver the signals, via a client messenger application, to the contentdistribution system. The signals received by the content distributionsystem may be delivered to a messaging component, which may identify theone or more buddies that accepted the shared remote control request. Themessenger component may propagate the signal to the set top boxes of thebuddies that accepted the shared remote control request to reflect theuser's context. Those of skill in the art recognize other methods fordelivering a signal reflecting a user's context to one or more set topboxes.

FIG. 5 illustrates one embodiment of a method for facilitating communityviewing and interaction in a given context. A user of a client deviceinitializes and connects to a logon component, step 505, which mayinclude verifying the user's credentials as maintained in the user'sprofile, step 510. Upon verifying a user's credentials, a check isperformed to determine whether the given user has one or more buddies,step 515, which may include accessing a user profile. According to oneembodiment of the invention, a user's one or more buddies may beidentified based upon the one or more instant messaging applications towhich the given user has subscribed, which may be indicated in theuser's profile. According to another embodiment, a user's buddies maycomprise individuals with profiles maintained on the contentdistribution system.

If the user profile retrieved does not identify one or more buddies forthe given user, a search is performed for “users like you,” step 525.According to one embodiment of the invention, “users like you” compriseother users with profiles maintained on the content distribution systemthat match or are similar to a given user's profile with respect tocharacteristics identified in the user's profile including demographics,frequently viewed content, etc. For example, if a user's profilesidentifies that the user is located in Houston, Tex. is forty-two yearsold and enjoys horror movies, profiles with similar age, preferences,location, etc., characteristics may be retrieved. The one or moreprofiles retrieved constituting “users like you” may be designated as auser's temporary buddies, step 525.

Where a user's profile identifies one or more buddies, or after one ormore profiles are retrieved constituting a match with the given user'sprofile and designated as temporary buddies, a check is performed todetermine whether any of the user's one or more buddies are logged in tothe content distribution system, step 520. If none of a user's buddiesare logged on to the content distribution system, the user is notifiedof such, step 530. The user's one or more buddies may be monitored todetermine whether any of the user's one or more buddies become active.

If one or more of a user's buddies are identified as active, step 520,the user may deliver a synchronization request to the one or more user'sbuddies, step 535. According to one embodiment of the invention, asynchronization request comprises an invitation delivered to one or moreusers to engage in community viewing. For example, the synchronizationof a given user with one or more buddies may result in the user and oneor more buddies engaging in a “movie theater” type viewing environment,wherein the user and one or more buddies view the same television show,movie, etc., at the same time while engaging in instant messaging orchat sessions.

The synchronization request delivered by a given user may be rejected oraccepted by the user's one or more buddies, step 555, which may be asubset of the user's active buddies. If the synchronization request isrejected by selected buddies associated with a given user, the user isnotified of such, step 550. The user's one or more buddies, or a subsetof the user's buddies, may thereafter be monitored to determine whetherany additional buddies associated with the user logon to the contentdistribution system, step 545. A check is periodically performed todetermine whether one or more additional buddies have logged on to thesystem described herein, step 540. If one or more additional buddiesassociated with the given user logon to the content distribution system,the synchronization request may delivered to such buddies, step 535.

If the synchronization request is accepted by selected buddiesassociated with the given user, the profiles of the one or more buddiesare retrieved, step 560. According to one embodiment of the invention,the profiles of the one or more buddies are used to identify thelocation of the one or more buddies as well as the content available toeach respective buddy. For example, a user's one or more buddies may belocated in various locations throughout the United States, the world,etc. Because of time zone differences, programming differences, etc.,content available to a given user may not be available to a given buddyat the same time, on the same channel, etc. A user's profile may be usedto identify the location of the user and the content available to theuser. Similarly, the profiles of a user's one or more buddies may beused to identify the content available to each respective buddy.

According to one embodiment of the invention, the profiles retrieved forthe user and the one or more buddies may be used by an electronicprogram guide component to identify content maintained in a content datastore that is available to the user and the one or more synchronizedbuddies. For example, a given user's profile may indicate that the useris located in New York City, and a given buddy's profile may indicatethat the buddy is located in San Francisco. Because of time zonedifferences, content available to the buddy located in San Francisco maynot be available to the user located in New York City until hours later.Using the profiles associated with the user and the buddy, theelectronic programming guide component may identify content, maintainedin a content data store, which is available simultaneously to bothindividuals. According to another embodiment of the invention, theprofiles retrieved for the user and the one or more buddies may be usedto identify content maintained on the user's or one or more buddies'client devices. For example, the user's and one or more buddies' clientdevices may be operative to record content, such as a client device withdigital video recording (“DVR”) functionality. The profiles for the userand one or more buddies may be used to identify content that ismaintained on such devices.

The content available to the user and the user's one or moresynchronized buddies may be displayed to the user and one or moresynchronized buddies, step 562. The user and one or more synchronizedbuddies may select a given item of content using a variety of methods.For example, a voting scheme may be used whereby the user and eachsynchronized buddy votes for the item of content they wish to view. Theitem of content receiving the greatest number of votes may be selectedfor display to the user and one or more synchronized buddies. Similarly,control may be granted to the user or a given synchronized buddy, whomay select the item of content that is to be viewed by the user and theone or more synchronized buddies. Those of skill in the art recognizeother techniques for selecting an item of content available to aplurality of users.

The user and one or more buddies may thereafter synchronize the startingtime for the item of content selected, step 563, wherein a starting timemay comprise when a given item of television content is to be deliveredto the user's and one or more buddies' client devices. According to oneembodiment of the invention, a messaging component is operative toselect a start time that is N minutes after an item of content has beenselected by the user and one or more synchronized buddies. The messagingcomponent may instruct a TV application component to deliver the contentselected to the user's and one or more buddies' client devices at thestart time selected. According to another embodiment of the invention,the user and one or more synchronized buddies may select a start timefor the item of content selected. According to yet another embodiment ofthe invention, control may be granted to the user or one of thesynchronized buddies, allowing the user or given synchronized buddy toselect the start time for the item of content selected. The start timeselected may be delivered to the messaging component, which may beoperative to instruct the TV application to deliver the item of contentselected at the start time selected.

The item of content selected is displayed on each of the synchronizedbuddy's client devices as well as the user's client device at thesynchronized start time, step 565. The user and the one or moresynchronized buddies are thus able to simultaneously view the same itemof content in a variety of locations on a plurality of client devices.According to one embodiment of the invention, additional services may beprovided to the user and one or more synchronized buddies forcommunication. For example, an instant messaging application may bedisplayed in conjunction with the item of content selected, allowing theuser and one or more synchronized buddies to engage in an instantmessaging or chat session during display of the selected content item.Those of skill in the art recognize other applications that may allowfor communication or interaction among a plurality of viewers in acommunity-viewing environment.

FIG. 6A illustrates one embodiment of a method for facilitating thetagging and delivery of one or more content items to one or more buddiesassociated with a given user. A user of a client device initializes andconnects to a logon component, step 605, to verify the user'scredentials as maintained in the user's profile, which may be retrievedfrom a profile data store, step 610. Content is retrieved and deliveredto the user's client device, step 615, which may include the receipt oftelevision content. According to one embodiment of the invention, a usermay select the content retrieved and delivered to the user's clientdevice using an electronic programming guide. For example, an electronicprogram guide component may search an EPG data store, which may beoperative to store one or more program guides, and display the one ormore items of content available to a given user. A given item of contentselected by a user may be retrieved from a TV application component anddisplayed on a given user's client device, step 615.

According to the embodiment illustrated in FIG. 6A, a user viewingcontent on a given client device may tag, or otherwise mark an item orportion of an item of content for delivery to one or more buddiesassociated with the user. A tag may comprise “start” and “stop”delimiters, identifying a portion of content that a user wishes todeliver to one or more buddies associated with the user. For example, auser viewing a television show or movie may enjoy a particular scene andmay wish to share the scene with one or more buddies. A user may thustag the desired item of the television show, using start and stop tags,and deliver the tagged scene to one or more buddies. According to oneembodiment of the invention, a given item of content that is tagged maybe recorded to a user's client device. For example, a user of a clientdevice with digital recording functionality (“DVR”) may locally recordthe content identified by the start and stop tags. According to anotherembodiment of the invention, tags may comprise identifiers that may beused to provide direct access to the tagged item of content. Forexample, a user may wish to tag a ten second scene in a two-hour movie.A start tag may identify the hour, minutes, and seconds where the scenebeings, and a stop tag may identify the hour, minutes and seconds wherethe scene ends. The start and stop tags may be delivered to one or morebuddies, providing the one or more buddies with direct access to thetagged item of content.

As content is displayed on a given user's client device, a check isperiodically performed to determine whether the user has elected to tagthe content being displayed, step 620. If a user does not enter anytagging information, content continues to be displayed on the clientdevice, step 615, and the user may continue to select content from amongthe plurality of content available to the user. If a user enters a tag,the tag marked by the user is saved, step 625. According to oneembodiment of the invention, the content tagged by the user is savedlocally on the user's client device or remotely on another deviceoperative to record content. For example, a client device with digitalvideo recording functionality (“DVR”) may provide the user with theability to locally record a given item of tagged content. Alternatively,the tagged content may be recorded and stored in a remote content storeoperative to store one or more. items of content. According to anotherembodiment of the invention, the content tagged by a user may beidentified with start and stop identifiers. For example, start and stopidentifiers may be stored and delivered to one or more buddies so as toprovide a user's one or more buddies with direct access to the taggeditem of a given television show, movie, etc. According to yet anotherembodiment invention, the content tagged by a user may be identifiedwith offsets or pointers identifying a location in a given item ofdigital content. For example, a given offset or pointer may be deliveredto one or more buddies identifying a location in an item of digitalcontent. A given buddy may select the offset or pointer, thereby gainingdirect access to the location in the item of content specified by theuser.

A check is performed to determine whether a user has one or morebuddies, step 630. If a user's profile does not identify one or morebuddies for the given user, processing ends, step 645. The one or moretags saved locally on a user's client device or saved remotely on adevice operative to store one or more tags may be later retrieved andviewed by the given user.

If a user's profile identifies one or more buddies, step 630, the one ormore buddies may be retrieved, step 632, and displayed to the given useron the user's client device with audio or visual context representationsassociated with each respective buddies' context, step 635. A user mayselect one or more of the buddies displayed in order to designate thebuddies as intended recipients of the tagged item of content. Forexample, using a selection device such as a remote control or mouse, auser may select one or more audio or visual context representationsassociated with the user's one or more buddies' contexts to identify theintended recipients of the tagged item of content. A check is performedto determine whether a user has selected one or more buddies, step 640.If a user does not select any buddies, the tagged content is notdelivered to any of the user's one or more buddies and a user maycontinue to select content from among the plurality of content availableto the user, step 615. The tagged content saved on the user's clientdevice or remotely on a device operative to store one or more tags maylater be retrieved and viewed by the given user.

If the user selects one or more buddies, a check is performed todetermine whether any of the one or more selected buddies are active,step 650. If one or more of the user's buddies are identified as active,the tagged content is delivered to the respective buddies and may beviewed or saved by each respective recipient, step 655. For example, amessaging component operative to identify a user's one or more buddiesmay instruct a local or remote storage device to deliver the given itemof tagged content to the user's one or more selected buddies. If none ofthe selected buddies are active, the tagged content may be annotatedwith delivery information identifying the one or more recipients thatare to receive the tagged content, step 660, and delivered when the oneor more identified recipients becomes active. For example, a selectedbuddy may receive a notification of the tagged content upon logging onto the content distribution system. Similarly, an inter-messagingcomponent, operative to communicate with one or more third party instantmessaging applications, may determine when a selected buddy logs ontothe third party application instant messaging application and maydeliver the tagged content to the selected buddy. Thereafter, a user maycontinue to retrieve and view the plurality of content available to theuser, step 615, and identify additional tags for delivery to the user'sone or more buddies.

While FIG. 6A illustrates a method for tagging one or more items ofcontent and delivering tags and tagged content to one or more buddiesassociated with a given user, the content distribution systemillustrated in FIG. 1 may further be used to select an item of contentin an electronic programming guide and deliver the selection to one ormore buddies associated with a given user. According to one embodimentof the invention, an electronic program guide component may deliver anelectronic programming guide to a given user's client device identifyingthe one or more items of content available to a given user. A user mayselect one or more of the items of content identified in the electronicprogramming guide in order to view, record, etc., the one or more itemsof content selected. For example, a user may select a given item ofcontent to arrange a date and time for recording the item on the user'sclient device. Similarly, the user may choose to select an item ofcontent in order to automatically tune the user's client device to theitem of content selected when the item is available.

A given user's selections from an electronic programming guide may bedelivered to one or more buddies associated with the given user.According to one embodiment of the invention, a messaging componentoperative to identify a user's one or more buddies delivers anotification to the user's one or more buddies. The notificationnotifies the one or more buddies of the one or more items of contentselected by the user from the electronic programming guide. For example,a messaging component may deliver a notification to a user's one or morebuddies indicating the one or more items of content that the user hasselected from an electronic programming guide for recording. Similarly,the messaging component may deliver a notification to a user's one ormore buddies indicating the one or more items of content that will beautomatically delivered to the user's client device when available.

FIG. 6B is a flow diagram illustrating one embodiment of a method forfacilitating web remote access of a user's set top box, digital videorecorder (“DVR”) or other client device to control and interact with thecontent delivered to the user's one or more client devices. A user mayremotely access the content distribution system via a client device(“remote access client device”) communicatively coupled to a web serveroperative to retrieve and display a logon page for the contentdistribution system. According to one embodiment of the invention, aremote access client device communicatively coupled to the Internet mayaccess the content distribution system via a web browser that maydisplay a logon web page for the content distribution system.

As illustrated in FIG. 6B, a user may remotely logon to the contentdistribution system, step 665, using a remote access client devicecoupled to a web server operative to retrieve and display a logon webpage for the content distribution system. According to one embodiment ofthe invention, a user of a remote access client device initializes andconnects to a logon component via the Internet to verify the user'scredentials as maintained in the user's profile, which may be retrievedfrom a profile data store, step 668. The profile retrieved for the givenuser may provide information on the one or more client devicesassociated with the user and coupled to the user's one or more set topboxes, step 670. For example, a user may have previously registered oneor more client devices associated with the user, such as digital videorecorders (“DVR”) or high definition televisions that may be coupled tothe user's one or more set top boxes. The functionality of the one ormore client devices associated with the user and coupled to the user'sone or more set top boxes may be identified in the user's profile ordetermined by the content distribution system. For example, the contentdistribution system may determine whether a given client deviceassociated with the user and coupled to the user's one or more set topboxes is capable of recording items of content, displaying items ofcontent in high-definition format, etc.

The profile retrieved for the user may be further used by the contentdistribution system to identify the content delivered to the user's oneor more set top boxes. According to one embodiment of the invention, thecontent distribution system identifies the one or more electronicprogram guides available on a user's one or more set top boxes. The datafrom one or more electronic program guides stored and available on auser's one or more set top boxes may be displayed to the user on theuser's remote access client device, step 675. A user may select one ormore items of content available to the user's one or more set top boxesas displayed in the one or more electronic program guides on the user'sremote access client device. For example, using a selection devicecoupled to the remote access client device such as a keyboard or amouse, a user may select one or more items of content from the one ormore electronic program guides available to the user.

A check is performed to determine whether the user selected one or moreitems of content displayed on the user's remote access client device,step 680. If a user does not select any items of content available tothe user, the user may continue to browse the one or more items ofcontent available, step 675. When the user selects one or more items ofcontent, step 680, the user is presented with one or more options forinteracting with the one or more items of content selected, step 681.According to one embodiment of the invention, the one or more optionsavailable to the user are based upon the functionality of the user's oneor more client devices, as identified in the user's profile. When theuser selects an item of content from the one or more items of contentdisplayed to the user via an electronic program guide on the remoteaccess client device, the user may be presented with an option to recordthe item of content selected on the user's DVR. Similarly, a user's settop box may be further coupled to a high definition television. When theuser selects an item of content, the user may be presented with anoption to receive the item of content selected in non-high-definitionformat or in high-definition format. Further, a user may schedule a timefor tuning the user's television to an item of content selected. Thoseof skill in the art recognize other options that may be available to agiven user based upon the one or more client devices coupled to a user'sone or more set top boxes, including recording an item of content,changing recording options, deleting a previously recorded item ofcontent, selecting an item of content for automatic tuning, etc.

A check is thereafter performed to determine whether a user selected oneor more of the options available to the user for the one or more itemsof content selected, step 682. If a user does not select any of the oneor more options available for the one or more items of content selected,the user may continue to browse the plurality of content available tothe user, step 675. When a user selects one or more of the of theoptions available for the one or more items of content selected, theuser's selection is propagated to the user's one or more set top boxes,DVRs, or other client devices, step 684. According to one embodiment ofthe invention, the user's selection is delivered by the contentdistribution system's messaging component to the one or more set topboxes associated with the given user. For example, a user may select theoption to record an item of content available to the user at aparticular time. The user's selection is delivered to the user's set topbox or DVR, which then carries out the command to implement theselection. A user's profile may be annotated to reflect the one or moreitems of content selected by the user, step 685, to provide the userwith recommendations for items of content, according to methodsdescribed herein.

FIG. 7 is a flow diagram illustrating one embodiment of a method forfacilitating the use of a client device for viewing television contentand interacting with one or more other applications. A user of a clientdevice initializes and connects to a logon component to verify theuser's credentials, step 705. Additionally, a user's profile isretrieved to identify the user's location, preferences, etc, step 710.Content is retrieved and delivered to the user's client device, step715. According to one embodiment of the invention, a user may select thecontent retrieved and delivered to the user's client device using anelectronic programming guide. For example, an electronic program guidecomponent may search an EPG data store, operative to store one or moreprogram guides for one or more locations and display the one or moreitems of content available to a given user. The one or more programguides retrieved may be retrieved based upon the location identified inthe user's profile. A given item of content selected by a user may beretrieved from a TV application component and displayed on a givenuser's client device.

According to the embodiment illustrated in FIG. 7, a user maysimultaneously view television content while engaging in a gamingapplication with one or more buddies associated with the given user. Forexample, one or more games, such as gaming applications available on theInternet, may be displayed on the user's client device. A user mayselect the one or more gaming applications available in order to invokethe respective gaming application.

A check is performed to determine whether a user has selected one ormore gaming applications, step 720. If a user does not select a gamingapplication, television content continues to be displayed on the givenuser's client device, step 715. A user may continue to select contentfrom among the plurality of content available to the given user, as wellas browse the one or more gaming applications available to the user. Incontrast, if a user selects one or more gaming applications, step 720,the one or more gaming applications may be executed and displayed on theuser's client device, step 725. According to one embodiment of theinvention, the one or more gaming applications selected are delivered toa user's client device and locally executed. According to anotherembodiment of the invention, the one or more gaming applicationsselected are executed remotely and displayed on a given user's clientdevice. The one or more gaming applications may be displayed inconjunction with the television content displayed on a given user'sclient device thus allowing the user to view television content as wellas participate in the one or more gaming applications selected.

A check is performed to determine whether a user has one or morebuddies, as identified in the user's profile, step 730. The user's oneor more buddies may be displayed to the user to permit the user toselect one or more buddies to take part in the gaming applicationselected, step 730. If a user has one or more buddies, the identity ofthe one or more buddies is retrieved, step 732. Furthermore, the activebuddies among the user's one or more buddies are identified anddisplayed to the user, step 734.

If a user is not associated with one or more buddies, one or moreprofiles stored in a profile data store may be retrieved to identifyother users with similar or matching interests, characteristics, etc.,to those of the given user, step 740. For example, a profile componentmay be operative to identify one or more profiles in a profile datastore that identify user preferences that are similar to the currentuser. The one or more other users identified by a profile component maybe designated as temporary buddies in order to allow the current user toengage in the gaming application selected.

A messaging component may deliver an invitation to the one or moreactive buddies identified by a user's profile or selected by a profilecomponent to participate in the one or more gaming applications selectedby the user, step 745. A recipient of a gaming application invitationmay either accept or reject the gaming invitation, step 748. If none ofthe recipients of the user's gaming invitation accept the invitation,the user is notified of such, and may continue to view the televisioncontent being displayed, step 755. The messaging component may pause fora given period of time, step 750, and thereafter redeliver the one ormore invitations to the user's one or more buddies, step 750. If one ormore the recipients of the user's gaming invitation accept theinvitation, the context of the one or more buddies who accepted theinvitation is retrieved, step 760.

The context of the one or more buddies may be displayed on the user'sclient device, step 765. For example, a user's client device may displayan audio or visual representation of the one or more buddies' contexts.Additionally, the gaming application selected by the user is propagatedto each buddy who accepted the gaming invitation, step 768. For example,if a user selects a poker gaming application and a given buddy isviewing a television show, upon accepting the gaming invitation, thebuddy's client device may display both the television show and thegaming application. The user and one or more buddies who accepted thegaming invitation may thereafter engage in the gaming applicationselected.

It should be noted that while FIG. 7 illustrates the use of a gamingapplication in conjunction with the viewing of television content,according to another embodiment of the invention, one or more otherapplications may be selected and executed in conjunction with televisioncontent, wherein other applications may comprise applications executablelocally on a client device or remotely on a device operative to executeone or more applications for display on the client device.

The content distribution system illustrated in FIG. 1 may further beused to provide users with the ability to enter ratings and receiverecommendations for one or more items of content. FIG. 8 is a flowdiagram illustrating one embodiment of a method for entering a ratingfor a given item of content and delivering the rating to a user's one ormore buddies.

During or after the display of an item of content, which may includetelevision content, a user may be presented with an option to enter arating for the given item of content, step 820. According to oneembodiment of the invention, a user is presented with a graphical userinterface allowing the user to enter one or more ratings for a givenitem of content. A rating may comprise an indication of the user'sopinion of the item of content. For example, a user may indicate whetherthe content was favorable using a “thumbs up” icon or unfavorable usinga “thumbs down” icon. Similarly, a user may enter ratings for one ormore categories or characteristics associated with the item of content.For example, if a user is viewing a horror film, the user may provide arating for one or more of the actors, the level of scariness of thefilm, the suspense of the film, etc. Furthermore, a user may also enterrating information for other applications, including gamingapplications, web sites, etc. For example, a user participating in anonline gaming application may provide a rating indicating whether thegame is challenging, whether the graphics are appealing, etc. Those ofskill in the art recognize other types and characteristics of contentthat may be rated by a given user.

A user's profile may be annotated with the rating entered by the userfor the given item of content to provide the user or the user's one ormore buddies with recommendations for additional content, step 825. Auser's profile annotated with rating information may be used todetermine content that the user may enjoy and alert the user when suchcontent is available. For example, a recommendation component mayinspect a user's profile annotated with a plurality of ratings toidentify one or more items of television content that the user may enjoybased upon the user's previous ratings. A recommendation component maydirect a TV application to retrieve one or more items of content from acontent data store and deliver the items of content to a user's clientdevice based upon the user's ratings. Similarly, a recommendationcomponent may inspect a user's profile and instruct another applicationcomponent, operative to store other applications, such as gamingapplications, to deliver the respective applications to a user's clientdevice based upon the user's ratings.

The user's rating may further be stored in a recommendation componentoperative to store one or more user ratings for items of content toallow the user's rating to be propagated to the user's one or morebuddies or utilized to provide recommendations to additional users, step830. A check is performed to determine whether the user has one or morebuddies as identified in the user's profile, step 835. If a user doesnot have one or more buddies, processing ends, with storage of theuser's rating, step 850. If a user does have one or more buddies, anaudio or visual representation of each buddy's context may be displayedon the user's client device to allow the user to select one or more ofthe buddies, step 840. A check is performed to determine whether theuser selected one or more buddies, step 845. If a user does not selectone or more buddies, processing ends. If one or more of the buddies areselected, each respective buddy selected may receive a notification ofthe user's rating for the given item of content, allowing the user's oneor more buddies to base their selections of content on one or morebuddies' ratings, step 860. For example, a buddy logged onto the contentdistribution system may receive an alert notifying the user of therating. Similarly, a buddy not logged onto the content distribution mayreceive a notification upon logging onto the content distribution systemnotifying the buddy that a user has rated a given item of content.Alternatively, or in conjunction with the foregoing, a buddy may receivean alert via an email application, instant messaging application, etc.,notifying the buddy of the user's rating for the given item of content.

The ratings entered by one or more users of the system described hereinmay be utilized to provide recommendations for one or more items ofcontent. FIG. 9 is a flow diagram illustrating one embodiment of amethod for generating one or more recommendations based upon ratingsentered by one or more users. According to the embodiment illustrated inFIG. 9, a user may logon to the content distribution system via a logoncomponent, step 905. A profile component may retrieve a user's profilefrom a profile data store to verify the user's credentials, step 910. Auser logged into the content distribution system may make a request fora recommendation for an item of content, wherein an item of content maycomprise television content, gaming content, Internet content, etc. Acheck is performed to determine whether a user has requested arecommendation, step 915. If a recommendation is not requested, theplurality of content available to the user may be displayed, allowingthe user to select one or more items of content, step 925. Where a usersubmits a request for a recommendation, a further check is performed todetermine whether the user has provided ratings for at least N items ofcontent associated with the recommendation sought, step 930. Accordingto one embodiment of the invention, a recommendation component inspectsthe user's profile to determine whether the user's profile is annotatedwith one or more ratings for the type of content selected. For example,if a user requests a recommendation for a mystery movie, a check isperformed to determine whether the user has rated at least N mysterymovies or television shows, wherein N may comprise a threshold. Arecommendation component may inspect the user's profile to determinewhether the user has rated at least N mystery movies or televisionshows.

If a user has rated at least N items of content associated with the typeof content selected, the recommendation component may generate arecommendation based upon the user's one or more ratings, step 935. Forexample, a profile annotated with three different ratings for mysteryfilms may identify that the given user enjoys a particular actor andenjoys black and white films. The recommendation component may generatea recommendation based upon the user's previous ratings and deliver arequest to a TV application component to retrieve one or more items ofcontent from a content data store that match the user's preferences. Athreshold may be used to increase the accuracy of the recommendationmade by the recommendation component. For example, a profile with onlyone mystery movie rating may not provide enough information for therecommendation component to make an accurate recommendation. Therefore,a threshold may be used to increase the likelihood that therecommendation component calculates a recommendation that matches agiven user's preferences.

If a user has not rated at least N items of content related to the typeof recommendation requested, a check is performed to determine whetherthe given user has one or buddies, step 940. According to one embodimentof the invention, a user's profile is used to determine the one or morebuddies designated by the user. The profiles of one or more buddiesidentified in a given user's profile may be used to providerecommendations for one or more items of content.

According to the embodiment illustrated in FIG. 9, if a user's profiledoes. not identify one or more buddies, a search is performed toidentify users of the content distribution system with profilesidentifying similar or matching preferences with those of the givenuser, step 945. According to one embodiment of the invention, a profilecomponent traverses the plurality of profiles that may be stored in aprofile data store to identify users with preferences that match or aresimilar to those of the given user. For example, if a user's profileindicates that the user is sixty-eight years old, lives in GreenwichConn. and enjoys movies with the actor Marlon Brando, one or moreprofiles with similar characteristics and preferences may be retrievedand designated as a user's temporary buddies in order to provide theuser with one or more recommendations.

If a user's profile identifies one or more buddies, or after one or moretemporary buddies have been designated for the user using one or morematching or similar profiles, a check is performed to determine whetherany of the one or more buddies has rated at least N items of contentrelated to the recommendation sought by the given user, step 950. Forexample, if a user is seeking a recommendation for a gaming application,a check is performed to determine whether any of the one or more buddieshas rated at least N gaming applications. If one or more of a user'sbuddies has rated at least N items of content associated with the typeof content sought by the given user, a recommendation component maygenerate a recommendation based upon the one or more ratings from theuser's one or more buddies, step 955. For example, if a user is seekinga recommendation for a gaming application and a buddy associated with auser has rated eight gaming applications, the recommendation componentmay generate a recommendation based upon the gaming application thatreceived the highest rating from the buddy. Similarly, if a user has aplurality of buddies and each buddy has rated a common gamingapplication, the recommendation component may calculate the averagerating of the one or more gaming applications and recommend the gamingapplication with the highest rating to the user. Those of skill in theart recognize other methods for generating a recommendation based uponone or more buddy ratings.

According to the embodiment illustrated in FIG. 9, if none of a user'sone or more buddies has rated at least N items of content associatedwith the item of content sought by the given user, a recommendationcomponent may generate a recommendation based upon characteristics ofthe user as indicated in the user's profile, step 960. For example, auser's profile may indicate that the user is twenty-three years old,lives in Arizona, attends Arizona State University and plays football.Therefore, a recommendation component may generate a recommendation fortelevision channels broadcasting football games played by collegeslocated within Arizona. The recommendation component may instruct a TVapplication component to retrieve and deliver one or more items ofcontent stored in a content data store associated with Arizona footballgames to the user's client device. Those of skill in the art recognizethe plurality of content that may be retrieved based upon one or moreuser characteristics as identified in a user profile. Alternatively, orin conjunction with the foregoing, the recommendation component mayprovide the user with a recommendation based upon the popularity of oneor more items of content. For example, the recommendation component mayidentify items of television content, audio content, gamingapplications, etc., that are most often viewed, accessed, downloaded,etc., and notify the user of such items. The recommendation componentmay instruct the TV application component to retrieve and deliver one ormore items of content stored in a content data store that are identifiedas being the most frequently selected, downloaded, accessed, etc.

The system of the present invention may also be used to alert a user ofone or more events according to user characteristics and preferencesidentified in a user profile. A user may be interested in variousevents, warnings, announcements, etc. Current methods for deliveringsuch information to a user may require a user to view a news broadcast,access a particular website, search for content, etc. In order toovercome shortcomings associated with current methods for deliveringuser specific information, the present invention provides systems andmethods that facilitate the retrieval and delivery of various alertsbased upon on or more user preferences.

FIG. 10 is a flow diagram illustrating one embodiment of a method foridentifying one or more user alerts. One or more items of content aredisplayed on the user's client device, step 1015, which may includetelevision content. While logged into the content distribution system, auser may wish to enter one or more alerts to generate a notification ofevents that are of interest to the given user. For example, a user maywish to receive notification when a movie starring the actor HarrisonFord is broadcast. Similarly, a user who frequently travels may wish toreceive notification of traffic reports for one or more highways.Further, a user may wish to receive notification about news events thatare of interest to the user. Those of skill in the art recognize otherinformation or events exist for which a given user may wish to receiveone or more alerts.

A check is performed to determine whether a given user has entered oneor more alerts, step 1020. According to one embodiment of the invention,a user may enter one or more alerts using a graphical user interfacethat may be accessed by a user of a client device who is logged in tothe system described herein. If a user enters an alert, the user'sprofile is annotated with information identifying the alert indicated bythe user, step 1025. If a user does not enter one or more alerts, theuser's profile may be used to generate one or more alerts, step 1030.Additionally, a user's profile may also be used to supplement the one ormore alerts entered by the user, step 1030. For example, a user'sprofile may indicate the user is ninety-five years old, lives in Miami,Fla. and enjoys viewing television shows associated with animals. Arecommendation component may annotate a user's profile with one or morealerts based upon the user's preferences as identified in the user'sprofile. Thus, the abovementioned user's profile may be annotated withone or more alerts to provide the user with a notification of televisionshows that display animals, discounts offered to senior citizens in theMiami, Fla. area, etc.

A recommendation component may further annotate the user's profile withalerts based upon a user's one or more recommendations as identified inthe user's profile. For example, a user's profile may indicate that auser enjoyed viewing several movies with the actor Al Pacino. Thus, theuser's profile may be annotated with one or more alerts to notify theuser when one or more items of content with the actor Al Pacino areavailable to the user. Those of skill in the art recognize other alertsthat may be generated based upon information maintained in a user'sprofile.

FIG. 11 is a flow diagram illustrating one embodiment of a method fordelivering an alert to a user based upon information maintained in auser profile. A TV application component may retrieve one or more itemsof content from a content data store to deliver to a user's clientdevice, step 1115, and the user's profile may be utilized to monitor theone or more alerts identified by the user or generated by arecommendation component, step 1120. According to one embodiment of theinvention, a messaging component is operative to monitor the one or morealerts associated with a given user's profile. The messaging componentmay periodically inspect one or more content data stores to identifyinformation pertaining to a user's one or more alerts, step 1125. Ifinformation associated with a user's one or more alerts is identified,the messaging component may instruct a TV application component todeliver a message or other notification to the user's client device,step 1130.

A user presented with an alert may select the alert in order to retrieveadditional information on the alert or to change the user's context todisplay information associated with the alert, step 1135. For example,if a given alert notifies a user of a major traffic accident, the usermay select the alert, which may change the user's context to a newsbroadcast detailing the events of the traffic accident. Similarly, if agiven alert notifies a user of a movie that the user may enjoy, the usermay select the alert to change the context to tune to the given movie.If information for a given alert is not located, or if a user does notselect the alert displayed on the user's client device, the user'scontext is unchanged, and the one or more alerts identified in theuser's profile continue to be monitored, step 1120.

A user's one or more alerts and ratings may further be used to customizethe delivery of one or more advertisements to the user's client device.FIG. 12 is a flow diagram illustrating one embodiment of a method fordelivering advertisements to a user, which may be based upon the user'sone or more alerts and ratings. The user's profile is retrieved, step1210, and content is delivered to the user's client device, step 1215. Acheck is performed to determine whether the user's profile contains oneor more ratings or one or more alerts, step 1220. If the user's profilecontains one or more ratings or one or more alerts, advertisementsrelated to the one or more ratings or one or more alerts may beretrieved, 1230. For example, a content data store may store a pluralityof advertisements for various products and services. A given user'sprofile may indicate that the user lives in Memphis, Tennessee, enjoysclassical music, is a soccer fan, etc. A recommendation component mayinstruct a TV application component or another application component toretrieve one or more advertisement related to classical music, soccer,etc., and deliver the advertisements to a user's client device.Similarly, a user's profile may indicate that the user wishes to receiveweather related alerts. A recommendation component may instruct the TVapplication component or other application component to retrieveadvertisements for weather related products and services and deliversuch advertisement to the user's client device, step 1235.

If a user's profile does not have one or more ratings or alerts, theuser's current context may be retrieved by a messaging component andused to determine one or more advertisements to deliver to the user'sclient device, step 1225. For example, a given user may be viewing themovie “The Shawshank Redemption.” The messaging component may retrievethe user's context, and based upon the context retrieved, instruct a TVapplication component to deliver one or more advertisement related tothe user's context. The TV application may retrieve advertisements, suchas the soundtrack to the movie “The Shawshank Redemption,” and deliversuch advertisements to the user's client device, step 1235.

A user may select one or more of the advertisements displayed on theuser's client device, step 1240. If a user selects a givenadvertisement, the user's context may be changed to display additionalinformation on the product or service advertised, step 1245. If a userdoes not select one or more of the advertisements displayed, the usercontext is unchanged, step 1215.

FIG. 13 is a screen diagram illustrating content that may be deliveredto a client device. A user of the system described herein may logonusing a logon component that may verify the user's credentials as storedin a user profile. Once logged in, a user may select from among aplurality of content available to the user that may be delivered to auser's client device. As illustrated in FIG. 13, the content 1305delivered to a client device may comprise television content that isavailable to a given user. According to one embodiment of the invention,content 1305 that is available to a user is identified based upon auser's location as indicated in the user's profile. For example, anelectronic program guide component may query an electronic program guidedata store to identify one or more electronic program guides availableto a given user based upon the user's location as indicated in theuser's profile. The one or more electronic program guides identified bythe electronic program guide component may be displayed to the user onthe user's client device. The user may select an item in the electronicprogram guide, which may result in a TV application component retrievingand delivering content 1305 to the user's client device.

While FIG. 13 illustrates the retrieval and delivery of televisioncontent 1305 to a user's client device, other content may be retrievedand delivered to a given user's client device. According to oneembodiment of the invention, a user may select one or more additionalapplications from another application component that may store otherapplications, such as gaming applications, instant messagingapplications, etc. The content 1305 selected and displayed on a givenuser's client device may be modified based upon the type of destinationclient device. For example, content selected for delivery to a cellularphone device may be sized according to the size of the display of thecellular phone device.

FIG. 14 is a screen diagram illustrating an electronic program guidethat may be used by a given user of a client device to select one ormore items of television content. As illustrated in FIG. 14, the content1405 selected and displayed in FIG. 13 is minimized to allow a user tocontinue view the television content 1405 selected while browsing theplurality of content 1415 and 1410 available to the given user.

The electronic program guide 1400 displayed to a user of a client devicemay be retrieved by an electronic program guide component that mayidentify the one or more electronic program guides available to a givenuser. According to one embodiment of the invention, the contentavailable 1415 and 1410 to a given user is identified based upon auser's location as identified in the user's profile. For example, anelectronic program guide displayed to a user in San Francisco, Calif.may correspond to Pacific Standard Time, whereas an electronic programguide displayed to a user in New York City may correspond to EasternStandard Time. According to another embodiment of the invention, thecontent available 1415 and 1410 to a given user may be identified basedupon a user's preferences as identified in a user profile. For example,a user may subscribe to one or more paid movie services, offering theuser additional content. An electronic program guide component mayretrieve an electronic program guide 1400 corresponding to a user'ssubscription service. Those of skill in the art recognize other methodsfor retrieving and displaying an electronic program guide to a user of aclient device.

A user may traverse the plurality of content 1415 and 1410 displayed inthe electronic program guide 1400 using a selection device such a remotecontrol and select one or more of the content items 1415 and 1410available to the user. If a user selects a given item of content 1415and 1410, the content may be retrieved by a TV application component anddisplayed on the given user's client device. As illustrated in FIG. 14,the content selected may be modified in order to properly display thecontent in conjunction with the electronic program guide available tothe given user.

In addition to selecting content displayed in an electronic programguide, a user may also select content associated with the user's one ormore buddies as illustrated in FIG. 15. According to one embodiment ofthe invention, a user profile may be used to identify one or morebuddies 1545, 1550, 1555, 1560 and 1565 designated by the user in one ormore instant messaging applications. Similarly, a user profile mayidentify buddies that maintain profiles on the content distributionsystem.

A messaging component may be used to identify the one or more buddiesidentified in a given user's profile and retrieve the context associatedwith each buddy 1545, 1550, 1555, 1560 and 1565 who may be active. Forexample, an active buddy may comprise a buddy who has logged in andmaintains a profile on the system described herein. A messagingcomponent may instruct a TV application component to deliver the contextassociated with a given buddy 1545, 1550, 1555, 1560 and 1565 to a givenuser. For example, a TV application component may deliver content, suchas a television show, to a given buddy's client device. When a user logson to the system described herein, a user may request to view thecontent being viewed by the one or more buddies identified in the user'sprofile. A messaging component may identify the one or more buddies andeach respective buddy's 1545, 1550, 1555, 1560 and 1565 context andinstruct a TV application component to propagate the one or morebuddies' contexts to the given user.

According to the embodiment illustrated in FIG. 15, a TV applicationcomponent generates a thumbnail 1520, 1525, 1530, 1535 and 1540 imagerepresenting the context of a given buddy 1545, 1550, 1555, 1560 and1565, which the TV application component propagates to the given user'sclient device. The thumbnail 1520, 1525, 1530, 1535 and 1540 may beannotated with information describing the particular context, e.g.,title, channel, rating, etc. The context of a user's one or more buddies1545, 1550, 1555, 1560 and 1565 may also be displayed in conjunctionwith the content 1505 being viewed by the given user. The display areaof a given user's client device may be modified to accommodate for theuser's one or more buddies 1545, 1550, 1555, 1560 and 1565 and thecontent 1505 being viewed by the user.

According to another embodiment of the invention, a TV applicationcomponent delivers the actual content being viewed by a given buddy1545, 1550, 1555, 1560 and 1565. For example, a buddy 1545, 1550, 1555,1560 and 1565 associated with a given viewer may be viewing the show“The Apprentice.” As described above, one method of indicating thebuddy's 1545, 1550, 1555, 1560 and 1565 context is delivering athumbnail image 1520, 1525, 1530, 1535 and 1540 associated with thebuddy's 1545, 1550, 1555, 1560 and 1565 context to the user's clientdevice. Additionally, the TV application may deliver streaming contentto the user's client device, allowing the user to view the content of agiven buddy 1545, 1550, 1555, 1560 and 1565 in conjunction with thecontent 1505 being viewed by the given user. While the screen diagramillustrated in FIG. 15 provides the context of five buddies 1545, 1550,1555, 1560 and 1565, additional or fewer buddies may be displayed to agiven user based upon a threshold or the number of buddies identified ina user's profile.

Advertisements or other ancillary content may also be displayed inconjunction with content and the context of a user's one or morebuddies. As illustrated in FIG. 15, an advertisement 1510 is displaythat corresponds to the current content 1505 being displayed on theuser's client device. The advertisement 1510 displayed may be selected,thereby allowing a user to acquire further information for the productor service advertised, 1510. The one or more advertisements 1510displayed in conjunction with content 1505 and a user's one or morebuddies 1545, 1550, 1555, 1560 and 1565 may be selected according to auser's ratings or alerts, as described herein. Similarly, the one ormore advertisements 1510 displayed on a user's client device may beselected based upon the content 1505 selected and delivered to theuser's client device. For example, the advertisement 1510 displayed isan advertisement for a movie associated with the content 1505 displayed.

FIG. 16 is a screen diagram illustrating the plurality of buddies 1610,1615, 1620, 1625, 1630 and 1635 associated with a user and a visualrepresentation of each buddy's respective context. A user's one or morebuddies, as identified in the user's profile, may view televisioncontent, participate in an online gaming application, watch a movie,etc. A visual representation of each buddy's respective context may bepropagated to a user's client device via a TV application component inconjunction with television content selected by a given user.

Using a selection device, such as a remote control, keyboard, mouse,etc., a user may traverse the visual representation of the one or morebuddies' 1610, 1615, 1620, 1625, 1630 and 1635 contexts displayed on theuser's client device. As illustrated in FIG. 11, as a user traverses thevisual representations of the one or more buddies' 1610, 1615, 1620,1625, 1630 and 1635 contexts displayed, a particular visualrepresentation of a buddy's 1615 context may be highlighted 1645 orotherwise marked. Information 1640 may be displayed to the user furtheridentifying the context of the highlighted buddy, such as program,title, channel, network, rating, etc. As a user traverses the contextassociated with the user's one or more buddies 1610, 1615, 1620, 1625,1630 and 1635, a user may continue to view and select content 1605. Forexample, a user may simultaneously view the context of the user's one ormore buddies 1610, 1615, 1620, 1625, 1630 and 1635 while changingtelevision channels, engaging in an online gaming application, watchinga movie, etc.

According to one embodiment of the invention, the display of a user'sone or more buddies 1610, 1615, 1620, 1625, 1630 and 1635 and associatedcontexts may be turned on or off. For example, a user viewing a moviemay wish to have the movie occupy the entire display area of the user'sclient device. The user may thus deactivate the display of the user'sbuddies 1610, 1615, 1620, 1625, 1630 and 1635 and associated contexts.Similarly, a user may limit the number of buddies 1610, 1615, 1620,1625, 1630 and 1635 and associated contexts displayed on the user'sclient device. For example, a user's profile may identify twenty buddieswho may all be active while the user is engaging in an online gamingapplication. The user may wish to limit the number of buddies 1610,1615, 1620, 1625, 1630 and 1635 and associated contexts displayed inorder to minimize clutter on the screen, maximize the display of thegaming application, etc. According to another embodiment of theinvention, a user may modify the location of the display of buddies1610, 1615, 1620, 1625, 1630 and 1635 and associated contexts in thedisplay area of the user's client device. While the screen diagramillustrated in FIG. 16 shows a row of buddies 1610, 1615, 1620, 1625,1630 and 1635 with associated contexts on the bottom of the displayarea, one or more of the buddies 1610, 1615, 1620, 1625, 1630 and 1635and associated contexts may be placed in positions that accommodate auser's needs or preferences.

FIG. 17 is a screen diagram illustrating another embodiment of theplurality of buddies 1710, 1715, 1720, 1725, 1730 and 1735 associatedwith a user and each buddy's respective context 1770, 1775, 1780, 1785,1790 and 1795 that may be selected by the user. The context 1770, 1775,1780, 1785, 1790 and 1795 of a user's one or more buddies 1710, 1715,1720, 1725, 1730 and 1735, as identified in the user's profile, may bepropagated to a user's client device via a TV application component. Auser's one or more buddies 1710, 1715, 1720, 1725, 1730 and 1735 may beviewing television content, engaging in an online gaming application,etc. The context 1770, 1775, 1780, 1785, 1790 and 1795 of each buddy1710, 1715, 1720, 1725, 1730 and 1735 may be viewed on the user's clientdevice in conjunction with the one or more items of content 1705selected by the user.

As previously described, using a selection device, a user may traversethe contexts 1770, 1775, 1780, 1785, 1790 and 1795 associated with theuser's one or more buddies 1710, 1715, 1720, 1725, 1730 and 1735. When agiven context 1780 associated with a buddy 1720 is highlighted orotherwise marked, additional information 1798 associated with thebuddy's 1720 context 1780, such as channel, title, network, etc., isdisplayed to the user. Additionally, if a user selects a context 1780associated with a given buddy, a user may be presented with one or moreoptions 1740, 1745 and 1750. For example, the screen diagram illustratedin FIG. 17 presents a user selecting a buddy's context 1780, which is anonline poker gaming application. When the user selects the context 1780associated with the buddy 1720 participating in the online poker gamingapplication, the user is presented with a plurality of options. The“watch” 1745 option allows the user to view the poker game that thebuddy is participating in. For example, by selecting “watch,” 1745 thebuddy's context 1780, namely the online poker gaming application, may bepropagated to the user's client device. The user may continue to viewthe television content 1705 along with the buddy's online poker game.Selecting “cancel” 1750 may allow the user to continue traversing theone or more contexts 1770, 1775, 1780, 1785, 1790 and 1795 associatedwith the users one or more buddies 1710, 1715, 1720, 1725, 1730 and1735.

By selecting “play,” 1740 a user may elect to participate in the buddy's1720 online poker gaming application. For example, if the user selects“Play,” 1740 the context 1780 of the buddy 1720 is propagated to theuser's client device. Moreover, the user's profile may be used toidentify the user as a participant and engage the user in the pokergame. FIG. 18 presents a screen diagram illustrating the contentassociated with the context change that may be displayed to a user uponselecting the “play” 1740 option associated with a given buddy's 1720gaming context 1780.

According to the embodiment illustrated in FIG. 18, a user may engage inthe gaming application associated with one or more selected buddies. Thecontext of the selected buddy is delivered to the user's client device,allowing the user to participate in the gaming application. A user maycontinue to the view the content 1810 previously selected while takingpart in the gaming application.

As illustrated in FIG. 18, a user's buddies 1815, 1820, 1825, 1830,1835, 1840 and 1845 may be modified to reflect the user's contextchange. More specifically, the user's context, previously comprised onlyof television content, now comprises both television content 1810 and apoker gaming application 1805. Therefore, the buddies displayed to auser may be modified to reflect the buddies associated with the changedcontext. The buddies “joff,” 1835 “hatrick” 1840 and “joymo,” 1845associated with the user's television viewing 1810 continue to bedisplayed on the user's client device as the user continues to viewtelevision content 1810, whereas the buddies 1815, 1820, 1825 and 1830associated with the user's gaming application 1805 are retrieved anddisplayed on the user's client device. The user is further presentedwith a plurality of controls 1850, 1855 and 1860 for participating inthe gaming application 1805.

As illustrated in FIG. 19, a user may receive one or more alerts whileviewing content or participating in a gaming application. According tomethods described herein, a user's profile may identify one or morealerts, wherein alerts may comprise events or notifications that theuser wishes to receive or that may be of interest to a given user. Atraffic alert 1915 is illustrated, notifying the user of “Major Delays”on a roadway that may be relevant to the user. While the alert presentedis a traffic related alert 1915, other alerts may be displayed on auser's client device based upon the one or more alerts identified in auser's profile or the user's particular context. For example, a userparticipating in an online poker game may receive an alert notifying theuser that a given casino is conducting a poker tournament. Similarly, auser's profile may indicate that the user wishes to receive an alertnotifying the user when the television show “The Real World” will bebroadcast. Those of skill in the art recognize other alerts that may bedisplayed to a user of a client device based upon a user's profile or auser's particular context.

While the invention has been described and illustrated in connectionwith preferred embodiments, many variations and modifications as will beevident to those skilled in this art may be made without departing fromthe spirit and scope of the invention, and the invention is thus not tobe limited to the precise details of methodology or construction setforth above as such variations and modification are intended to beincluded within the scope of the invention.

1. A method comprising: retrieving a profile of a given user; using theprofile to identify a buddy of the given user; delivering a sharedcontrol request of the given user to a buddy device of the buddy;enabling the buddy to accept or reject the shared control request; andallowing the given user to control a context of the buddy device whenthe buddy accepts the shared control request.
 2. The method of claim 1,wherein the using the profile to identify the buddy comprises:identifying one or more instant messaging applications to which thegiven user subscribes as indicated in the profile; identifying one ormore other users in the one or more instant messaging applications; anddesignating one of the other users as the buddy.
 3. The method of claim2, further comprising selecting the buddy from the one or more otherusers by the given user.
 4. The method of claim 1, wherein the using theprofile to identify the buddy comprises: retrieving one or morecharacteristics of the given user as indicated in the profile; examiningone or more other user profiles to identify another user withcharacteristics similar to the given user; and designating the otheruser with the similar characteristics as the buddy.
 5. The method ofclaim 1, wherein the shared control request comprises a request to allowthe given user to control one or more content items displayed on thebuddy device.
 6. The method of claim 1, further comprising propagatingthe context of the given user to the buddy that accepted the sharedcontrol request.
 7. The method of claim 7, wherein the propagatingcomprises propagating a change in context of the given user to the buddythat accepted the shared control request.
 8. The method of claim 1,wherein the context comprises a notion of the action that the user isperforming at a given point in time.
 9. A system comprising: a contentstore for storing content items; a given user device coupled to thecontent store and operative to enable selection and presentation ofcontent items stored in the content store to a given user; an other-userdevice coupled to the content store and operative to enable selectionand presentation of content items stored in the content store to anotheruser; and a content distribution server operative to identify the otheruser as being a buddy of the given user, to receive a shared controlrequest from the given user device, to deliver the shared controlrequest to the other-user device, to receive an acceptance or arejection to the shared control request from the other-user device, andto allow the given user to control a context of the other-user devicewhen an acceptance is received.
 10. The system of claim 9, wherein atleast a portion of the content store is maintained on the contentdistribution server.
 11. The system of claim 9, wherein at least aportion of the content store is maintained external to the contentdistribution server.
 12. The system of claim 9, wherein at least one ofthe given user device and the other-user device includes one of apersonal computer, a set top box, or a personal digital assistant. 13.The system of claim 9, wherein the content distribution server includesa profile data store for storing identification of buddies of a givenuser.
 14. The system of claim 9, wherein the content distribution serveris operative to propagate a content item selected by the given user tothe given user device and the other-user device.
 15. The system of claim9, further comprising a second other-user device coupled to the contentstore and operative to enable selection and presentation of contentitems stored in the content store to a second other user; and whereinthe content distribution server is operative to identify the secondother user as being a second buddy of the given user, to receive asecond shared control request from the given user device, to deliver theshared control request to the second other-user device, to receive anacceptance or a rejection to the shared control request from the secondother-user device, and to allow the given user to control the context ofthe second other-user device when an acceptance is received.
 16. Thesystem of claim 15, wherein the content distribution server is operativeto propagate a content item selected by the given user to the other-userdevice and to the second other-user device.
 17. A system comprising:retrieving means for retrieving a profile of a given user; identifyingmeans for identifying a buddy in a social network with the given user;delivering means for delivering a shared control request of the givenuser to the buddy; enabling means for enabling the buddy to accept orreject the shared control request; and allowing means for allowing thegiven user to control a client device context of the buddy when thebuddy accepts the shared control request.
 18. The system of claim 17,wherein the retrieving means includes a profile component coupled to aprofile store that stores profiles of users.
 19. The system of claim 17,wherein the identifying means includes a messaging component incommunication with a messenger application on the given user device. 20.The system of claim 17,wherein the identifying means includes amessaging component that examines the other user profiles to identifythe subset of the other users having characteristics in common with thegiven user.
 21. The system of claim 17, wherein the delivering means,enabling means and allowing means each include at least a portion of aTV application component, the TV application component being incommunication with the given user device and the other-user device, theTV application component having access to a content data store andcontrolling the distribution of content items from the content datastore to the given user device and the other-user device.